<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <div></div>

    <script>

        // es5 
        //   var 声明的变量存在预编译   --- 导致代码的读取顺序出现问题
        //   变量不声明也可以使用

        // es6新增了let和const 声明变量
        //   1 不存在预编译
        //   2 变量不能重复声明  --- 在同一个作用域下
        //   3 块级作用域
        //        全局作用域，  在函数外面声明的变量，在任何地方都可以使用
        //        局部作用域，  在函数里面声明的变量  只能在函数中使用
        //        块级作用域    在{}里面声明的变量   只能在大括号里面使用


        // let和const的区别
        //   let声明的是变量,const声明的是常量(不允许改变),但是const如果存储引用数据类型,那么只要地址不变即可
        //   let声明的变量可以不写初始值,但是const必须写初始值


        // 需要声明变量的时候  如何选择
        //    const  >  let  >  var
          

        // console.log(a) ;   // undefined
        // var a = 1 ;

        // console.log(a);  // 没有预编译
        // let a = 1 ;

        // var i = 1 ;

        // var i = 0 ;


        // let i = 2 ;
        // let i = 3 ;

        // let a = 3 ;

        // fn() ;
        // fn2();

        // function fn() {
        //     let a = 1 ;
        // }


        // function fn2() {
        //     let a = 2 ;
        // }


        // if(1) {
        //     let a = 1 ;
        // }

        // console.log(a);



        // for(var i = 0 ; i < 10 ; i++) {

        // }
        // console.log(i);  // 10


        // for(let i = 0 ; i < 10 ; i++) {

        // }
        // console.log(i);   // 报错


        // let a = 2 ;
        // a = 3 ;
        // console.log(a);


        // const 用来定义常量   ---  变量中的值不允许改变
        // const a = 4 ;
        // a++ ;
        // console.log(a);

        // const pai = 3.14 ;

        // const必须初始化赋值
        // const pai ;
        
        // arr存的是地址 --- 修改数组的值,但是不能修改地址
        const arr = [1,2,3] ;
        arr.push(4) ;
        console.log(arr);

        // 出现了=  赋值就是改变地址
        // arr = [1,2,3,4];   // 报错


        const oDiv = document.querySelector('div');
        oDiv.innerHTML = '666';

        // function fn(){}
        const move = function() {
            let t = setInterval(function() {
                // 获取当前位置
                // let cur = 
                // let speed = 
            } , 10)
        }



        // for(let i = 0 ; i < 10 ; i++) {
        //     setTimeout(function() {
        //         console.log(i);   // 0-9
        //     } , 10)
        // }




    </script>
    
</body>
</html>